<?php

namespace addons\booking;

use app\common\library\Menu;
use think\Addons;
use think\Loader;

/**
 * 插件
 */
class Booking extends Addons
{

    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        $menu = include ADDON_PATH . 'booking' . DS . 'data' . DS . 'menu.php';
        Menu::create($menu);
        return true;
    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        Menu::delete("booking");
        return true;
    }

    /**
     * 插件启用方法
     * @return bool
     */
    public function enable()
    {
        Menu::enable("booking");
        return true;
    }

    /**
     * 插件禁用方法
     * @return bool
     */
    public function disable()
    {
        Menu::disable("booking");
        return true;
    }

    /**
     * 插件升级方法
     */
    public function upgrade()
    {
        $menu = include ADDON_PATH . 'booking' . DS . 'data' . DS . 'menu.php';
        Menu::upgrade('booking', $menu);
    }

    /**
     * 应用初始化
     */
    public function appInit()
    {
        // 公共方法
        require_once __DIR__ . '/helper.php';
        //添加命名空间
        if (!class_exists('\Hashids\Hashids')) {
            Loader::addNamespace('Hashids', ADDON_PATH . 'booking' . DS . 'library' . DS . 'hashids' . DS);
        }

        if (request()->isCli()) {
            \think\Console::addDefaultCommands([
                'addons\booking\command\BookingOrder',
                'addons\booking\command\BookingSubscribe'
            ]);
        }
    }
}
